home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softdisk G-S 127
/
SGDS 127.2mg
/
SDGS.127
/
SDA127
/
A
/
XWORD
(
.txt
)
< prev
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
NeXTSTEP
RISC OS
UTF-8
Wrap
Applesoft BASIC Source Code
|
1992-04-04
|
2.0 KB
|
48 lines
|
[FC] Applesoft BASIC Program (0x0801)
0 PRINT CHR$(21): HGR2
2 BELL = 34319:GCOLR = 34313:HOT = 34310:INIT = 34304:CGEN = 32777:GBNW = 34316
5 VTAB 22: HTAB 12: PRINT "Choose puzzle to solve"
10 HIMEM: 7168:D$ = CHR$(4): PRINT D$"BLOADCROSSWORD.ML": GOTO 1000
20 ONERR GOTO 70
30 PRINT D$"PREFIX": INPUT P$: PRINT D$"OPEN"P$",TDIR": PRINT D$"READ"P$: INPUT F$,F$,F$
40 INPUT F$: IF F$ = "" THEN 70
50 IF LEFT$(F$,4) < >" XW." THEN 40
60 N$(F) = MID$ (F$,5,12):F = F +1: IF F <51 THEN 40
70 POKE 216,0: PRINT D$"CLOSE"
100 :
120 M$(0) = "Get a new puzzle":M$(1) = "Solve " +F$:M$(2) = "Save progress":M$(3) = "Recall progress":M$(4) = "Blank puzzle":M$(5) = "Quit": RETURN
130 FOR Q1 = 10 TO 17: VTAB Q1: HTAB 12: PRINT SPC( 19): PRINT : NEXT : RETURN
200 HOME : GOSUB 130: FOR I = 1 -UO TO MN -UO: VTAB V +MI *I: HTAB H: PRINT M$(I): NEXT :K = 0: GOTO 230
210 FOR K = 0 TO 127:K = PEEK(49152): NEXT : POKE 49168,0:K = K -129: IF K = 8 OR K = 11 THEN PRINT M$(M):M = M -1:M = M +MN *(M = -UO)
212 IF K < >8 AND K < >11 AND K < >10 AND K < >21 AND K < >13 THEN CALL BELL: GOTO 210
220 IF K = 10 OR K = 21 THEN PRINT M$(M):M = M +1:M = M -MN *(M = (MN +1 -UO))
230 VTAB V +MI *M: HTAB H: INVERSE : PRINT M$(M);: NORMAL : IF K < >13 THEN HTAB H: GOTO 210
235 GOSUB 130: VTAB V +MI *M: HTAB H: INVERSE : PRINT M$(M);: NORMAL
240 RETURN
300 MN = 0:MI = 1:UO = 0: IF P >0 THEN UO = 1:M$(0) = "Previous page":MN = 1
305 VTAB 18: HTAB 10: PRINT "Choose puzzle to solve"
310 IF F >6 AND P <7 AND ((P +1) *6 < >F) AND ( INT(F/6) < >P) THEN MN = MN +1:M$(7) = "Next page"
315 E = F -P *6: IF E >6 THEN E = 6
320 FOR I = 1 TO E:M$(I) = " " +N$(P *6 +I -1):MN = MN +1: NEXT
330 GOSUB 200: IF M = 0 THEN P = P -1:M = 7: GOTO 300
340 IF M = 7 THEN P = P +1:M = 1: GOTO 300
350 VTAB 18: HTAB 10: PRINT SPC( 22): RETURN
400 GOSUB 130: POKE 222,0: VTAB 12: HTAB 13: PRINT "THERE HAS BEEN AN": HTAB 18: PRINT "ERROR!!"
410 VTAB 15: HTAB 15: PRINT "PRESS ANY KEY": HTAB 16: PRINT "TO CONTINUE";: GET A$: ON ER +1 GOTO 1030,1100
1000 HCOLOR= 3: SCALE= 1: ROT= 0: DIM N$(50): CALL CGEN: POKE 48688, PEEK(0): POKE 48689, PEEK(1): ONERR GOTO 400
1001 PRINT D$"-piracy.rpk": VTAB 4: HTAB 12: PRINT "CROSSWORD MACHINE ][": VTAB 24: HTAB 16: PRINT "Press a key": GET A$
1002 POKE 230,32: PRINT D$"-crossword.bpk": GOSUB 20: ONERR GOTO 400
1010 IF NOT F THEN HOME : VTAB 12: HTAB 15: PRINT "No puzzles!": HTAB 15: PRINT "Hit any key ": HTAB 17: PRINT "to quit": GET A$: GOTO 1630
1020 M = 1:PM = 1: IF F >1 THEN 1100
1025 F$ = N$(0): GOTO 1110
1030 MN = 5 +(F >1):MI = 1:V = 11:H = 12:ER = 0:UO = (F >1): GOSUB 120
1040 GOSUB 200: ON M +1 GOTO 1100,1200,1300,1400,1500,1600
1100 ER = 1:M = PM:H = 15:V = 10: GOSUB 300:F$ = RIGHT$(M$(M), LEN(M$(M)) -2):PM = M
1110 PRINT D$"BLOADXW."F$: CALL INIT:M = 1: GOTO 1030
1200 CALL GBNW: CALL HOT -W:W = 0: CALL GCOLR: GOSUB 100: GOTO 1030
1300 PRINT D$"BSAVEIP."F$",A32479,L289": GOTO 1030
1400 PRINT D$"BLOADIP."F$:W = 3: GOTO 1030
1500 CALL INIT: GOTO 1030
1600 GOSUB 130: VTAB 12: HTAB 19: PRINT "Quit?": VTAB 16: HTAB 15: PRINT "Press Y or N."
1610 GET A$: IF A$ = "N" OR A$ = "n" THEN 1030
1620 IF A$ < >"Y" AND A$ < >"y" THEN CALL BELL: GOTO 1610
1630 CALL GCOLR: PRINT D$"PR#0": TEXT : HOME : PRINT D$"BYE"